import { inject } from "vue";

export const storeKey = "store";

export function useStore(key = null) {
  return inject(key !== null ? key : storeKey);
}

export function install(app, injectKey, store) {
  const version = Number(app.version.split(".")[0]);
  if (version >= 2 && version < 3) {
    app.mixin({ beforeCreate: vuexInit });
  } else {
    app.provide && app.provide(injectKey || storeKey, store);
    app.config && (app.config.globalProperties.$store = store);
  }

  function vuexInit() {
    this.$store = store;
  }
}
